/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.secretaria.saude.dominio;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

/**
 * Classe com os dados de procedimentos pactuados entre o governo do estado de MG
 * e a Secretaria de Saúde Nacional (GAIA)
 * 
 * @author pablo
 */
@Entity
@Table(name="pactuado")
public class ItemPactuado implements Serializable {
    
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    
    @ManyToOne
    @JoinColumn(name = "procedimentogaia_id", nullable=false)
    private ProcedimentoGaia procedimentoGaia;

    /*Dados do municipio de origem*/
    @Column
    private Long codigoMicroRegiaoOrigem;
    
    @Column
    private String descricaoMicroRegiaoOrigem;

    @Column
    private Long codigoMacroRegiaoOrigem;

    @Column
    private String descricaoMacroRegiaoOrigem;

    @Column
    private Long codigoMunicipioOrigem;

    @Column
    private String descricaoMunicipioOrigem;

    /*Dados do municipio de atendimento */

    @Column
    private Long codigoMicroRegiaoAtendimento;

    @Column
    private String descricaoMicroRegiaoAtendimento;

    @Column
    private Long codigoMacroRegiaoAtendimento;

    @Column
    private String descricaoMacroRegiaoAtendimento;

    @Column
    private Long codigoMunicipioAtendimento;

    @Column
    private String descricaoMunicipioAtendimento;

    @Column
    private Integer quantidade;

    @Column
    private Double valor;
    
    @ManyToOne
    @JoinColumn(name = "importacao_gaia_id")
    private ImportacaoGaia importacaoGaia;

    public ItemPactuado() {
    }

    

    public ItemPactuado(ProcedimentoGaia procedimentoGaia, Long codigoMicroRegiaoOrigem, String descricaoMicroRegiaoOrigem, Long codigoMacroRegiaoOrigem, String descricaoMacroRegiaoOrigem, Long codigoMunicipioOrigem, String descricaoMunicipioOrigem, Long codigoMicroRegiaoAtendimento, String descricaoMicroRegiaoAtendimento, Long codigoMacroRegiaoAtendimento, String descricaoMacroRegiaoAtendimento, Long codigoMunicipioAtendimento, String descricaoMunicipioAtendimento, Integer quantidade, Double valor, ImportacaoGaia importacaoGaia) {
        this.procedimentoGaia = procedimentoGaia;
        this.codigoMicroRegiaoOrigem = codigoMicroRegiaoOrigem;
        this.descricaoMicroRegiaoOrigem = descricaoMicroRegiaoOrigem;
        this.codigoMacroRegiaoOrigem = codigoMacroRegiaoOrigem;
        this.descricaoMacroRegiaoOrigem = descricaoMacroRegiaoOrigem;
        this.codigoMunicipioOrigem = codigoMunicipioOrigem;
        this.descricaoMunicipioOrigem = descricaoMunicipioOrigem;
        this.codigoMicroRegiaoAtendimento = codigoMicroRegiaoAtendimento;
        this.descricaoMicroRegiaoAtendimento = descricaoMicroRegiaoAtendimento;
        this.codigoMacroRegiaoAtendimento = codigoMacroRegiaoAtendimento;
        this.descricaoMacroRegiaoAtendimento = descricaoMacroRegiaoAtendimento;
        this.codigoMunicipioAtendimento = codigoMunicipioAtendimento;
        this.descricaoMunicipioAtendimento = descricaoMunicipioAtendimento;
        this.quantidade = quantidade;
        this.valor = valor;
        this.importacaoGaia = importacaoGaia;
    }

    


    public Long getCodigoMacroRegiaoAtendimento() {
        return codigoMacroRegiaoAtendimento;
    }

    public void setCodigoMacroRegiaoAtendimento(Long codigoMacroRegiaoAtendimento) {
        this.codigoMacroRegiaoAtendimento = codigoMacroRegiaoAtendimento;
    }

    public Long getCodigoMacroRegiaoOrigem() {
        return codigoMacroRegiaoOrigem;
    }

    public void setCodigoMacroRegiaoOrigem(Long codigoMacroRegiaoOrigem) {
        this.codigoMacroRegiaoOrigem = codigoMacroRegiaoOrigem;
    }

    public Long getCodigoMicroRegiaoAtendimento() {
        return codigoMicroRegiaoAtendimento;
    }

    public void setCodigoMicroRegiaoAtendimento(Long codigoMicroRegiaoAtendimento) {
        this.codigoMicroRegiaoAtendimento = codigoMicroRegiaoAtendimento;
    }

    public Long getCodigoMicroRegiaoOrigem() {
        return codigoMicroRegiaoOrigem;
    }

    public void setCodigoMicroRegiaoOrigem(Long codigoMicroRegiaoOrigem) {
        this.codigoMicroRegiaoOrigem = codigoMicroRegiaoOrigem;
    }

    public Long getCodigoMunicipioOrigem() {
        return codigoMunicipioOrigem;
    }

    public void setCodigoMunicipioOrigem(Long codigoMunicipioOrigem) {
        this.codigoMunicipioOrigem = codigoMunicipioOrigem;
    }

    public Long getCodigoMunicipioAtendimento() {
        return codigoMunicipioAtendimento;
    }

    public void setCodigoMunicipioAtendimento(Long codigoMunicipioAtendimento) {
        this.codigoMunicipioAtendimento = codigoMunicipioAtendimento;
    }

    public String getDescricaoMacroRegiaoAtendimento() {
        return descricaoMacroRegiaoAtendimento;
    }

    public void setDescricaoMacroRegiaoAtendimento(String descricaoMacroRegiaoAtendimento) {
        this.descricaoMacroRegiaoAtendimento = descricaoMacroRegiaoAtendimento;
    }

    public String getDescricaoMacroRegiaoOrigem() {
        return descricaoMacroRegiaoOrigem;
    }

    public void setDescricaoMacroRegiaoOrigem(String descricaoMacroRegiaoOrigem) {
        this.descricaoMacroRegiaoOrigem = descricaoMacroRegiaoOrigem;
    }

    public String getDescricaoMicroRegiaoAtendimento() {
        return descricaoMicroRegiaoAtendimento;
    }

    public void setDescricaoMicroRegiaoAtendimento(String descricaoMicroRegiaoAtendimento) {
        this.descricaoMicroRegiaoAtendimento = descricaoMicroRegiaoAtendimento;
    }

    public String getDescricaoMicroRegiaoOrigem() {
        return descricaoMicroRegiaoOrigem;
    }

    public void setDescricaoMicroRegiaoOrigem(String descricaoMicroRegiaoOrigem) {
        this.descricaoMicroRegiaoOrigem = descricaoMicroRegiaoOrigem;
    }

    public String getDescricaoMunicipioAtendimento() {
        return descricaoMunicipioAtendimento;
    }

    public void setDescricaoMunicipioAtendimento(String descricaoMunicipioAtendimento) {
        this.descricaoMunicipioAtendimento = descricaoMunicipioAtendimento;
    }

    public String getDescricaoMunicipioOrigem() {
        return descricaoMunicipioOrigem;
    }

    public void setDescricaoMunicipioOrigem(String descricaoMunicipioOrigem) {
        this.descricaoMunicipioOrigem = descricaoMunicipioOrigem;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public ImportacaoGaia getImportacaoGaia() {
        return importacaoGaia;
    }

    public void setImportacaoGaia(ImportacaoGaia importacaoGaia) {
        this.importacaoGaia = importacaoGaia;
    }

    public ProcedimentoGaia getProcedimentoGaia() {
        return procedimentoGaia;
    }

    public void setProcedimentoGaia(ProcedimentoGaia procedimentoGaia) {
        this.procedimentoGaia = procedimentoGaia;
    }

    public Integer getQuantidade() {
        return quantidade;
    }

    public void setQuantidade(Integer quantidade) {
        this.quantidade = quantidade;
    }

    public Double getValor() {
        return valor;
    }

    public void setValor(Double valor) {
        this.valor = valor;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final ItemPactuado other = (ItemPactuado) obj;
        if (this.id != other.id && (this.id == null || !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 43 * hash + (this.id != null ? this.id.hashCode() : 0);
        return hash;
    }

    @Override
    public String toString() {
        return "ItemPactuado{" + "procedimentoGaia=" + procedimentoGaia + "descricaoMunicipioOrigem=" + descricaoMunicipioOrigem + "descricaoMunicipioAtendimento=" + descricaoMunicipioAtendimento + "quantidade=" + quantidade + "valor=" + valor + '}';
    }

    
    
    
}
